{
struct wl_data_offer *offer;
GList *targets; /* List of GdkAtom */
- GdkAtom requested_target;
};
struct _AsyncWriteData
/* Source-side data */
StoredSelection stored_selection;
GArray *source_targets;
+ GdkAtom requested_target;
struct wl_data_source *clipboard_source;
GdkWindow *clipboard_owner;
GdkAtom target,
gint fd)
{
- DataOfferData *offer;
GdkAtom selection;
if (wayland_selection->clipboard_owner == window)
else
return FALSE;
- offer = selection_lookup_offer_by_atom (wayland_selection, selection);
-
if (wayland_selection->stored_selection.fd == fd &&
- offer->requested_target == target)
+ wayland_selection->requested_target == target)
return FALSE;
/* If we didn't issue gdk_wayland_selection_check_write() yet
close (wayland_selection->stored_selection.fd);
wayland_selection->stored_selection.fd = fd;
- offer->requested_target = target;
+ wayland_selection->requested_target = target;
if (window &&
gdk_wayland_selection_source_handles_target (wayland_selection, target))
{
GdkWaylandSelection *wayland_selection = gdk_wayland_display_get_selection (display);
+ wayland_selection->requested_target = GDK_NONE;
g_array_set_size (wayland_selection->source_targets, 0);
gdk_wayland_selection_unset_data_source (display, selection);
}